package sprint2;

import java.io.Serializable;

/**
 * Hiermee vang je de Creatures en gekrompen BigCreatures.
 *
 * @author Yoeri Goldewijk
 * @author Marco Schultewolter
 *
 */

public class CatchingNet extends Item implements Serializable  {
	private double probabilityOfSuccess;

	/**
	 * Constructor van CatchingNet
	 *
	 * @param name De naam van de catching net.
	 * @param description Een beschrijving van de catching net.
	 * @param value Hoeveel de catching net waard is.
	 * @param probabilityOfSuccess Hoeveel kans er is om er iets (een creature) mee te vangen.
	 */

	public  CatchingNet(String name, String description, double value, double probabilityOfSuccess) {
		super(name, description, value);
		this.probabilityOfSuccess = probabilityOfSuccess;
	}

	/**
	 * Hiermee gebruik je de catching net.
	 * Hij kijkt eerst of de creature een big creature is en zo ja of die gekrimpt is.
	 * Als hij niet gekrimpt is, geeft hij weer dat het niet lukt.
	 * Daarna geeft het weer of de poging van vangen lukt of niet.
	 * Wanneer het lukt is de creature aan je inventory toe gevoegd.
	 * @return true als het gelukt is, false als het niet gelukt is.
	 */
	public boolean useItem(Creature c, Inventory i){
		if (c instanceof BigCreature)
			if (!((BigCreature) c).isShrinked())
				return false;

		double rnd = Math.random();
		if (rnd <= probabilityOfSuccess)
		{
			i.addItem(c);
			return true;
		}
		return false;
	}
}
